﻿//-----------------------------------------------------------------------
// <copyright file="Style.cs" company="WorldView Solutions Inc">
//     Copyright (c) WorldView Solutions Inc. This source is subject to the Microsoft Public License (Ms-PL). All other rights reserved.
// </copyright>
//-----------------------------------------------------------------------

using System;
using System.Xml;
using System.Xml.Serialization;

namespace WorldViewSolutions.Graphics
{
    /// <summary>
    /// 
    /// </summary>
    /// <remarks></remarks>
	[Serializable]
	[XmlRoot("style")]
	public class Style
	{
        /// <summary>
        /// Gets or sets the type of the line.
        /// </summary>
        /// <value>The type of the line.</value>
        /// <remarks></remarks>
		[XmlAttribute("lineType")]
		public string LineType { get; set; }

        /// <summary>
        /// Gets or sets the color of the line.
        /// </summary>
        /// <value>The color of the line.</value>
        /// <remarks></remarks>
		[XmlAttribute("lineColor")]
		public string LineColor { get; set; }

        /// <summary>
        /// Gets or sets the width of the line.
        /// </summary>
        /// <value>The width of the line.</value>
        /// <remarks></remarks>
		[XmlAttribute("lineWidth")]
		public int LineWidth { get; set; }

        /// <summary>
        /// Gets or sets the line opacity.
        /// </summary>
        /// <value>The line opacity.</value>
        /// <remarks></remarks>
		[XmlAttribute("lineOpacity")]
		public double LineOpacity { get; set; }

        /// <summary>
        /// Gets or sets the color of the fill.
        /// </summary>
        /// <value>The color of the fill.</value>
        /// <remarks></remarks>
		[XmlAttribute("fillColor")]
		public string FillColor { get; set; }

        /// <summary>
        /// Gets or sets the fill opacity.
        /// </summary>
        /// <value>The fill opacity.</value>
        /// <remarks></remarks>
		[XmlAttribute("fillOpacity")]
		public double FillOpacity { get; set; }

        /// <summary>
        /// Gets or sets the size of the text.
        /// </summary>
        /// <value>The size of the text.</value>
        /// <remarks></remarks>
		[XmlAttribute("textSize")]
		public int TextSize { get; set; }

        /// <summary>
        /// Gets or sets the icon style.
        /// </summary>
        /// <value>The icon style.</value>
        /// <remarks></remarks>
        [XmlAttribute("iconStyle")]
        public IconStyle IconStyle { get; set; }

        /// <summary>
        /// Initializes a new instance of the <see cref="T:System.Object"/> class.
        /// </summary>
        /// <remarks></remarks>
		public Style()
		{
            this.LineType = "solid";
            this.LineColor = "#0000ff";
            this.LineWidth = 1;
            this.LineOpacity = 0.8;
            this.FillColor = "#0000ff";
            this.FillOpacity = 0.6;
            this.TextSize = 12;
		}
	}
}